Skip to content

01 Docker 课程介绍

在 Linux 上部署一个单体项目的麻烦:

  • 命令太多了,记不住
  • 软件安装包名字复杂,不知道去哪里找
  • 安装和部署步骤复杂,容易出错

由于每台服务器的运行环境不同,你写好的安装流程、部署脚本并不一定在每个服务器都能正常运行,经常会出错。这就给系统的部署运维带来了很多困难。Docker 的出现,就是为了解决这些问题。

Docker overview | Docker Docs

  • Docker is an open platform for developing, publishing, and running applications.
    • Docker 是一个用于开发、发布和运行应用程序的开放平台。
  • Docker enables you to decouple applications from infrastructure so you can deliver software quickly.
    • Docker 使您能够将应用程序与基础设施分离,以便您可以快速交付软件。
  • With Docker, you can manage your infrastructure just like your applications.
    • 借助 Docker,您可以像管理应用程序一样管理基础设施。
  • By leveraging Docker's approach to shipping, testing, and deploying code, you can significantly reduce the latency between writing your code and running it in production.
    • 通过利用 Docker 的方法来传送、测试和部署代码,您可以显着减少编写代码和在生产中运行代码之间的延迟。

Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。Docker 可以让开发者打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

  • Docker 是用 Go 编写的,它利用 Linux 内核的一些特性来实现其功能。
  • Docker 使用一种名为 namespaces 的技术来提供称为容器的隔离工作区。
  • 当你运行一个容器时,Docker 会为该容器创建一组命名空间。
  • 这些命名空间提供了一层隔离层。容器的每个方面都在单独的命名空间中运行,其访问权限仅限于该命名空间。

学习目标

  • 能利用 Docker 部署常见软件
  • 能利用 Docker 打包并部署 Java 应用
  • 理解 Docker 数据卷的基本作用
  • 能看懂 Docker Compose 文件

准备 Linux 环境

首先,我们要准备一个 Linux 的系统,成本最低的方式就是在本地安装一台虚拟机。为了统一学习环境,不管是使用 MacOS 还是 Windows 系统的同学,都建议安装一台虚拟机。

安装 VMware

windows 采用 VMware Workstation,Mac 则采用 VMware Fusion。

WARNING

特别注意,Windows10 以上版本操作系统需要下载安装 VMware Workstation Pro 16 及以上版本,安装方式此处略。

powershell
> scoop search vmware
'breathe' bucket:
  vmware-horizon-client-np (2209-8.7.0-20649873)
  vmware-workstation-player-np (17.0.0-20800274)

'meta' bucket:
  vmware-workstation-pro-10 (10.0.7.2844087)
  vmware-workstation-pro-12 (12.5.9.7535481)
  vmware-workstation-pro-14 (14.1.8.14921873)
  vmware-workstation-pro-15 (15.5.7.17171714)
  vmware-workstation-pro-16 (16.2.5.20904516)
  vmware-workstation-pro-17 (17.5.0.22583795)
  vmware-workstation-pro (17.5.0.22583795)

 $ scoop install vmware-workstation-pro

创建虚拟机

安装 CentOS7

设置虚拟机快照

在虚拟机安装完成后,最好立刻设置一个快照,这样一旦将来虚拟机出现问题,可以快速恢复。

  1. 我们先停止虚拟机,点击 VMware 顶部菜单中的 暂停下拉选框,选择 关闭客户机
  2. 点击 VMware 菜单中的 🔧 按钮;
  3. 在弹出的快照管理窗口中,点击拍摄快照,填写新的快照信息;
    • 名称:初始化
    • 描述:刚刚完成安装
  4. 点击拍摄快照

TIP

我们可以在不同阶段拍摄多个不同快照作为备份,方便后期恢复数据。

恢复快照

假如以后虚拟机文件受损,需要恢复到初识状态的话,可以选中要恢复的快照,点击转到即可。

  1. 点击 VMware 菜单中的 🔧 按钮打开快照管理器;
  2. 选中要恢复的快照,点击转到

SSH 客户端

在 VMware 界面中操作虚拟机非常不友好,所以一般推荐使用专门的 SSH 客户端。市面上常见的有:

  • Xshell:个人免费,商业收费,之前爆出过有隐藏后门。不推荐
  • Finshell:基础功能免费,高级功能收费,基于 Java,内存占用较高(在 1 个 G 左右)。不推荐
  • MobarXterm:基础功能免费、高级功能收费。开源、功能强大、内存占用低(只有 10m 左右),但是界面不太漂亮。推荐使用
    • 官方版本为英文版本。
    • 汉化版使用:英文版本也不是啥门槛,刚开始习惯中文,慢慢的用久了就可以全英文版本了。没必要为了中文或则好看而忽视了安全你问题。Mobaxterm 毕竟是远程连接的工具,处于安全考虑还是建议自己去翻译比较稳妥。(当然如果你不在意安全问题可以随意~~),有些汉化版中有后门,所以安全问题还是重视点。汉化教程:Mobaxterm 全版本汉化教程

安装 MobarXterm

  • 这里我们会选择内存占用较低的 MobarXterm 作为 SSH 客户端。
  • 官网:MobaXterm free Xserver and tabbed SSH client for Windows
  • MobaXterm 分两种模式:
    • 便携式:适合安装在 U 盘,双击即可运行,这样服务器账号密码什么的就很方便的管理了,出门在外只需要一个 U 盘就可以连接服务器。
    • 安装式:普通安装,正常的 install 安装步骤。
powershell
$ scoop install mobaxterm
Installing 'mobaxterm' (23.4) [64bit] from breathe bucket
Starting download with aria2 ...
wnload: Download Results:
Download: gid   |stat|avg speed  |path/URI
Download: ======+====+===========+=======================================================
Download: 13f9d3|OK  |   5.4MiB/s|D:/scoop/cache/mobaxterm#23.4#https_download.mobatek.net_2342023101450418_MobaXterm_Portable_v23.4.zip
Download: Status Legend:
Download: (OK):download completed.
Checking hash of MobaXterm_Portable_v23.4.zip ... ok.
Extracting MobaXterm_Portable_v23.4.zip ... done.
Running pre_install script...
Linking D:\scoop\apps\mobaxterm\current => D:\scoop\apps\mobaxterm\23.4
Creating shim for 'MobaXterm'.
Creating shortcut for MobaXterm Personal (MobaXterm.exe)
Persisting MobaXterm.ini
Persisting MobaXterm backup.zip
'mobaxterm' (23.4) was installed successfully!

连接 Linux 环境

  • 点击 session 按钮,进入会话管理;
  • 弹出的 session 管理页面中,填写信息并保存;
    • Remote host: 192.168.xxx.xxx (根据自己环境填写)
    • Specify uername: root ,并勾选
    • Bookmark settingsSession name: lesson-101 (随意,可不修改)
  • 点击 OK 后会提示你是第一次连接,询问你是信任连接的服务;
  • 选择 accept 之后,会询问你是否要记住密码,选择 yes
  • 紧接着需要你设置一个 MobarXterm 的全局密码用于做密码管理,建议设置一个与虚拟机密码不同的;
  • 输入密码成功后,就会连接成功,并进入操作界面了。

TIP

FTP 面板,展示的是虚拟机的文件系统,可以直接拖按方式上传或下载文件!

配置 MobarXterm

MobarXterm 默认的配置并不是很好用,我们需要对其进行一些配置。

配置默认编辑器

建议设置一下默认编辑器,这样我们通过 MobarXterm 的 FTP 工具打开文件时会以指定的编辑器打开,方便修改。我这里配置的是 vscode。

  • 点击 Settings 按钮,进入设置;
  • 点击 General 选项卡(默认就是)
  • 第 3 项 Default text editor program,右边选择 VSCode 程序。(scoop 安装的在 scoop/apps/vscode/current/Code.exe

配置右键粘贴

复制粘贴是很常用的配置,MobarXterm 默认左键选中即复制,但是需要配置右键点击为粘贴

  • 点击 Settings 按钮,进入设置;
  • 点击 Terminal 选项卡
  • Terminal features
    • 勾选 Paste using right-click
    • 不要勾选 Warn before pasting multiple lines
    • 勾选 Track terminal activity

这样,复制和粘贴可以全部通过鼠标操作,无需按键。

ssh 配置

  • 点击 Settings 按钮,进入设置;
  • 点击 SSH 选项卡
  • SSH settings
    • Default login 中填写 root (默认的登录用户)
    • 勾选 SSH keepalive (ssh 保持连接)
    • 不要勾选 Display SSH banner (取消连接成功后的欢迎 banner)

关闭 X-Server 服务

大多数情况下,我们没有 x-server 的需求,因此可以选择不要自启动。

  • 点击 Settings 按钮,进入设置;
  • 点击 X11 选项卡
  • Server settings
    • 不要勾选 Automatically start X server at MobaXterm start up